Skip to content

Admit service certificates and typed MCP actors at Actions - #16354

Merged
agentydragon merged 2 commits into
agentydragon:develfrom
agentydragon-agent:agent/service-svid-actions
Nov 14, 2026
Merged

agentydragon merged 2 commits into
agentydragon:develfrom
agentydragon-agent:agent/service-svid-actions

Conversation

@agentydragon-agent

@agentydragon-agent agentydragon-agent commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Allow explicitly configured service SVID readers on the Action Service’s read methods, and a separately granted MCP service actor on typed Connection delegation methods. Effective Identity bindings and live UID checks remain the authorization authority. App service transport can carry independently verified operator OIDC; a certificate alone never grants operator access.

Rebased PR head: d08a036087d904da1537801d9e677ad661364e93. This PR targets devel because native GitHub stacks do not support cross-fork branches.

This is stage 3, disabled until allowlists are configured. It deliberately leaves out caller changes, production settings, bearer removal and RBAC cleanup; receiver images must be pinned first. The overview includes the optional certificate/delegation edges.

Validation: pre-commit and commit hooks passed. Focused real-TLS receiver/delegation/operator checks passed in invocation 6f4579ed. Final isolated bbr verification passed: //agentplane/action_service/cmd:config_test, //agentplane/action_service/cmd:integration_test, //agentplane/action_service/internal/rpc:integration_test, //agentplane/action_service:settings, and deployment suites //agentplane/system_tests/suites/mcp:test_actions and //agentplane/system_tests/suites/mcp:test_delegation (invocation).

Rollback: revert the receiver commit before enabling service callers. Existing bearer/OIDC/workload callers remain admitted. Once callers are switched, first restore compatible caller images/settings before reverting this receiver. Check Action watches, submissions and operator decisions after rollout.

The generated-manifest CI failure was traced to newly serialized empty settings. Empty service defaults are now omitted; bbr test //agentplane/action_service:test_settings //agentplane/action_service:settings //cluster/cdk8s:test_generate_manifests passed (https://app.buildbuddy.io/invocation/683fbe51-702d-4daa-b8fd-141f6e3bd6df).

Rollout gate: no new certificate-path or service-allowlist manifest setting until #16359 merges and the receiver images are pinned.

Questions for Claude

None.

@github-actions

github-actions Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Visual review for d08a0360

No visual artifacts were available from the Bazel CI run.

Open the CI run for the complete test results or to request a manual rerun.

@agentydragon-agent
agentydragon-agent force-pushed the agent/service-svid-actions branch 2 times, most recently from 2859db4 to 0a6104b Compare November 14, 2026 07:00
@agentydragon
agentydragon enabled auto-merge (squash) November 14, 2026 07:05
auto-merge was automatically disabled November 14, 2026 07:27

Head branch was pushed to by a user without write access

@agentydragon-agent
agentydragon-agent force-pushed the agent/service-svid-actions branch from 0a6104b to 102e734 Compare November 14, 2026 07:27
@agentydragon-agent
agentydragon-agent force-pushed the agent/service-svid-actions branch from 102e734 to d08a036 Compare November 14, 2026 07:49
@agentydragon
agentydragon merged commit 6b3ff26 into agentydragon:devel Nov 14, 2026
10 checks passed
agentydragon pushed a commit that referenced this pull request Nov 14, 2026
…16358)

Add exact service SVID allowlists for LLM ModelConfig reads and Central
Sampler inference delegation. The sampler must supply a typed effective
Identity and Session envelope; live UID verification and the Identity’s
egress grants remain authoritative. A service certificate carries
neither a synthetic account nor Pod proof, and failed certificate
verification cannot select a bearer fallback.

Rebased PR head: `958c9417080866e425fa72e8195c479f0f4f28c3`. This PR
targets devel because cross-fork native stacks are unsupported.

Stage 3 only. Deliberately excludes production settings, the sampler’s
`auth.mode: agentplane_ingress` caller switch, other caller TLS changes,
and TokenReview/RBAC removal. Those wait for receiver image pins.
Staging’s existing bearer mode continues during this stage. The overview
includes optional service edges.

Validation: pre-commit and commit hooks passed. Isolated `bbr test
//agentplane/llm_ingress:ingress_test //agentplane/llm_ingress:settings`
passed (real TLS peer/delegation tests, exact caller denial, effective
Identity/Session, stale UID and bearer ambiguity). Deployment suite
coverage is recorded below.

Rollback: revert before enabling service callers; after caller
migration, first restore compatible caller images/settings. Existing
bearer/workload admission remains available at this stage. Check
ModelConfig discovery and ordinary inference after rollout.

Isolated `bbr test //agentplane/llm_ingress:ingress_test
//agentplane/llm_ingress:settings` passed
(https://app.buildbuddy.io/invocation/ff86e46a-7863-4843-a78a-19815e3c2aa1).
Deployment suite `bbr test
//agentplane/system_tests/suites/mcp:test_services` passed
(https://app.buildbuddy.io/invocation/16dc4905-93cc-4c45-bc49-9fb33e486584).

Rollout gate: no new certificate-path or service-allowlist manifest
setting until #16359 merges and the receiver images are pinned.

Inactive service defaults are omitted from rendered settings. `bbr test
//agentplane/llm_ingress:settings
//cluster/cdk8s:test_generate_manifests` passed
(https://app.buildbuddy.io/invocation/19584d67-2eb9-41cc-9e33-fbfdb3960e32).

## Questions for Claude

Before stage 4, verify staging central Sessions retain execution
Identity name and UID required by typed LLM delegation. No fallback to
bearer is permitted if that proof is absent.

Rebased after #16354 and #16357 merged; the only conflict was in
`system_overview.md`. Both merged diagrams and the LLM authentication
edge are preserved. Scoped pre-commit and `git diff --check` passed;
receiver code is unchanged by this rebase.

---------

Co-authored-by: agentydragon-agent <260791330+agentydragon-agent@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants